Natural and manmade systems include interrelated entities working together in typically complex manners. System representations (e.g. models of systems and the interrelations between entities in the systems) provide an abstraction of the system for better understanding of the entities within the system and the relationships between entities. Representations are used in a variety of disciplines to identify problems or inefficiencies in a particular system, anticipate failures in the system so that the system can be reconfigured or provide insight as to why a particular failure occurred. In the field of architecture, for example, computer representations aid architectural engineers in visualizing how structural members of a building physically fit together and how the members statically and dynamically interact under various conditions. These representations can help the engineer minimize the potential for catastrophic building failure.
It may be desired to transform (e.g. modify or change) systems in accordance with an initiative (e.g. a goal, mission, plan, etc.) such that a desired system is achieved which comprises desired entities which are interrelated through desired relationships. In order to facilitate the transformation of a system in accordance with an initiative, a representation of the system or the desired system may be developed. For example, it may be desired to transform an enterprise such as a company or other organization or sub-organization. Accordingly, an individual such as an enterprise architect may develop a representation of a desired enterprise. The desired enterprise may be optimized for efficiencies or cost management. For example, when an enterprise is formed from a merger, it may be desired to integrate two redundant divisions in the enterprise to optimize efficiencies and reduce costs. To model such a transformation, an enterprise architect may develop a representation of the desired division.
Systems often evolve in a hodge-podge manner, with various entities such as, for example, computers and software programs being deployed at different times, leading to a highly heterogeneous system. Without careful planning, the installation of entities such as new computers and software applications can lead to instability in the system, causing conflicts within the system and other problems. To further complicate matters, systems may be prone to communication breakdowns, incompatibility issues and a variety of other problems. An error or instability in one portion of the system can, at one end of the spectrum, cause annoyance for a small number of people and, at the other end, cripple the system.
Because systems may be augmented or evolve, modeling these systems to identify or predict problems can be time consuming and difficult. In particular, identifying and managing changing relationships between entities in a system is problematic. Two primary methods are currently employed to model systems. The first method involves diagramming the system using a computer drafting program such as Microsoft VISIO (Microsoft and VISIO are trademarks of Redmond, Wash. based Microsoft Corp.) or listing entities using a spreadsheet. The network diagram or spreadsheet provides an inventory of entities comprising a system. This solution is generally insufficient for managing relationships between entities, particularly in large systems, because the graphical representations or spreadsheet data must be manually deciphered to derive relationships. Another problem with modeling system through documents is that potentially hundreds of personnel are needed to update those documents. If there are a large number of documents it can be difficult to cross-reference the documents, provide version control for the documents and control document workflow among multiple authors.
The second solution involves maintaining a relational database that includes entries for machines and software programs. The relational database can define relationships through associations between database entries according to a database schema, with the database schema being based on known relationships. As new relationships develop or old relationships disappear, the database schema, and potentially the SQL statements required to utilize the underlying data, must typically be updated. This can be a time consuming and error prone process.